package in.rob.client.widget; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.widget.RemoteViews; import in.lib.Constants; import in.rob.client.R; import in.rob.client.ThreadActivity; public class ScrollWidgetProvider extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { ComponentName thisWidget = new ComponentName(context, ScrollWidgetProvider.class); int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget); for (int appWidgetId : allWidgetIds) { Intent serviceIntent = new Intent(context, ScrollWidgetService.class); serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME))); RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.scroll_widget_light); widget.setRemoteAdapter(R.id.widget_post_feed_view, serviceIntent); Intent threadIntent = new Intent(context, ThreadActivity.class); PendingIntent threadPendingIntent = PendingIntent.getActivity(context, 0, threadIntent, PendingIntent.FLAG_UPDATE_CURRENT); widget.setPendingIntentTemplate(R.id.widget_post_feed_view, threadPendingIntent); Intent newPostIntent = new Intent(Constants.ACTION_INTENT_NEW_POST); PendingIntent pendingNewPostIntent = PendingIntent.getBroadcast(context, 0, newPostIntent, PendingIntent.FLAG_UPDATE_CURRENT); widget.setOnClickPendingIntent(R.id.widget_new_post, pendingNewPostIntent); Intent refreshIntent = new Intent(Constants.ACTION_INTENT_REFRESH); refreshIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); PendingIntent pendingRefreshIntent = PendingIntent.getBroadcast(context, 0, refreshIntent, PendingIntent.FLAG_UPDATE_CURRENT); widget.setOnClickPendingIntent(R.id.widget_refresh, pendingRefreshIntent); Intent openAppIntent = new Intent(Constants.ACTION_INTENT_OPEN_APP); PendingIntent pendingOpenAppIntent = PendingIntent.getBroadcast(context, 0, openAppIntent, PendingIntent.FLAG_UPDATE_CURRENT); widget.setOnClickPendingIntent(R.id.widget_logo, pendingOpenAppIntent); appWidgetManager.updateAppWidget(appWidgetId, widget); } // Build the intent to call the service // Intent intent = new Intent(context.getApplicationContext(), UpdateWidgetService.class); // intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds); // intent.putExtra("type", "scroll"); // // final AlarmManager m = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); // service = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); // // Debug.out("SETTING EXACT"); // m.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, service); } }